//#include <iostream>
//#include <stdlib.h>
//#include <algorithm>
//using namespace std;
////start
//#include <iomanip>
//class MyDate {
//private:
//    int year;
//    int month;
//    int days;
//    bool is_valid;
//    bool valid(int y, int m, int d)const {
//        if (m < 1 || m>12)return false;
//        int max_days;
//        switch (m) {
//        case 1:case 3:case 5:case 7:case 8:case 10:case 12:
//            max_days = 31;
//            break;
//        case 4:case 6:case 9:case 11:
//            max_days = 30;
//            break;
//        case 2:
//            if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) {
//                max_days = 29;
//            }
//            else {
//                max_days = 28;
//            }
//            break;
//        default:
//            return false;
//        }
//        return (d >= 1 && d <= max_days);
//    }
//public:
//    MyDate(int y) {
//        if (y > 0) {
//            year = y;
//            month = 1;
//            days = 1;
//        }
//        else {
//            year = -1;
//            month = -1;
//            days = -1;
//        }
//    }
//    MyDate(int y, int m) {
//        if (y > 0 && m > 0 && m <= 12) {
//            year = y;
//            month = m;
//            days = 1;
//        }
//        else {
//            year = -1;
//            month = -1;
//            days = -1;
//        }
//    }
//    MyDate(int y, int m, int d) :year(y), month(m), days(d) {
//        is_valid = valid(y, m, d);
//    }
//
//    void Show() {
//        if (valid(year, month, days)) {
//            cout << setw(4) << setfill('0') << year << "/" << setw(2) << setfill('0') << month << "/" << setw(2) << setfill('0') << days;
//        }
//        else {
//            cout << "[#Invalid]";
//        }
//    }
//    bool IsValid() {
//        return valid(year, month, days);
//    }
//    bool operator==(const MyDate &other)const {
//        if ((!is_valid) || (!other.is_valid) ){
//            return false;
//        }
//        return (year == other.year && month == other.month && days == other.days);
//    }
//    bool operator<(const MyDate& other)const {
//        if ((!is_valid) && other.is_valid) {
//            return true;
//        }
//        if (is_valid && other.is_valid) {
//            if (year < other.year) {
//                return true;
//            }
//            else if (year == other.year) {
//                if (month < other.month) {
//                    return true;
//                }
//                else if (month == other.month) {
//                    if (days < other.days) {
//                        return true;
//                    }
//                }
//            }
//        }
//        return false;
//    }
//};
////end
//int main()
//{
//    int k, y, m, d;
//    cin >> k >> y >> m >> d;
//    srand(k);
//    MyDate d1(rand() % 100 + 1950, rand() % 12 + 1, rand() % 30), d2(y, m, d);
//    d1.Show();
//    if (d1 < d2)
//        cout << " << ";
//    else if (d1 == d2)
//        cout << " == ";
//    else
//        cout << " >> ";
//    d2.Show();
//}
#include <iostream>
#include <stdlib.h>
using namespace std;
//start
#include<iomanip>
class MyClock {
private:
    int hour;
    int minute;
    int second;
    bool valid(int h, int m, int s) {
        if (h >= 0 && h <= 23 && m >= 0 && m <= 59 && s >= 0 && s <= 59) {
            return true;
        }
        return false;
    }
public:
    MyClock() {
        hour = 0;
        minute = 0;
        second = 0;
    }
    MyClock(int totalsecond) {
        if (totalsecond > 0) {
            hour = totalsecond / 3600;
            minute = (totalsecond % 3600) / 60;
            second = totalsecond % 60;
        }
        else {
            hour = 0;
            minute = 0;
            second = 0;
        }
    }
    MyClock(int h, int m) {
        if (h >= 0 && h <= 23 && m >= 0 && m <= 59) {
            hour = h;
            minute = m;
            second = 0;
        }
        else {
            hour = 0;
            minute = 0;
            second = 0;
        }
    }
    MyClock(int h, int m, int s) {
        if (valid(hour, minute, second)) {
            hour = h;
            minute = m;
            second = s;
        }
        else {
            hour = 0;
            minute = 0;
            second = 0;
        }
    }

    void Set(int param = 0, int param2 = 0, int param3 = 0) {
        int newh, newm, news;
        if (param >= 0) {
            if (param2 == 0 && param3 == 0) {
                newh = param / 3600;
                newm = (param % 3600) / 60;
                news = param % 60;
            }
            else if (param3 == 0) {
                newh = param;
                newm = param2;
                news = 0;
            }
            else {
                newh = param;
                newm = param2;
                news = param3;
            }
        }
        if (valid(newh, newm, news)) {
            hour = newh;
            minute = newm;
            second = news;
        }
    }
    void Show() {
        cout << setw(2) << setfill('0') << hour << ":" << setw(2) << setfill('0') << minute << ":" << setw(2) << setfill('0') << second;
    }
    bool operator==(const MyClock& other)const {
        return hour == other.hour && minute == other.minute && second == other.second;
    }
    bool operator<(const MyClock& other)const {
        if (hour < other.hour) {
            return true;
        }
        else if (hour == other.hour) {
            if (minute < other.minute) {
                return true;
            }
            else if (minute == other.minute) {
                if (second < other.second) {
                    return true;
                }
            }
            return false;
        }
    }
};
//end
int main()
{
    int i, j, n;
    cin >> n;
    srand(n);
    MyClock ck[1000];
    for (i = 0;i < n;i++)
        ck[i].Set(rand() % 86400);
    for (i = 1;i < n;i++)
        for (j = 0;j < n - i;j++)
            if (!(ck[j] < ck[j + 1]))
                swap(ck[j], ck[j + 1]);
    cout << n << " random clock:\n";
    ck[0].Show();
    cout << " ... ";
    ck[n - 1].Show();
    for (i = 0;i < n - 1;i++)
        if (ck[i] == ck[i + 1])
            break;
    cout << (i < n - 1 ? "\n====" : "\nXXXX");
}
//#include <iostream>
//#include <math.h>
//using namespace std;
////start
//#include<iomanip>
//#include<cmath>
//class MyComplex {
//private:
//    double real;
//    double imag;
//    static double delta;
//public:
//
//    MyComplex(double r = 0, double i = 0) :real(r), imag(i) {}
//    void Show() {
//        if (!imag) {
//            cout << fixed << setprecision(3) << real;
//        }
//        else {
//            cout << fixed << setprecision(3) << "(" << real;
//            if (imag > 0) {
//                cout << "+" << imag << "i" << ")";
//            }
//            else {
//                cout << imag << "i" << ")";
//            }
//        }
//    }
//    bool operator==(const MyComplex& other)const {
//        return (abs(real - other.real) < delta) && (abs(imag - other.imag) < delta);
//    }
//    MyComplex operator+(const MyComplex& other)const {
//        return MyComplex(real + other.real, imag + other.imag);
//    }
//    MyComplex operator-(const MyComplex& other)const {
//        return MyComplex(real - other.real, imag - other.imag);
//    }
//    MyComplex operator*(const MyComplex& other)const {
//        return MyComplex(real * other.real - imag * other.imag, real * other.imag + imag * other.real);
//    }
//    MyComplex operator/(const MyComplex& other)const {
//        if ((other.real == 0) && (other.imag == 0)) {
//            cout << "Divided by 0." << endl;;
//            return MyComplex(0, 0);
//        }
//        double denominator = other.real * other.real + other.imag * other.imag;
//        return MyComplex((real * other.real + imag * other.imag) / denominator, (imag * other.real - real * other.imag) / denominator);
//    }
//};
//double MyComplex::delta = 0.00001;
////end
//int main()
//{
//    double a, b, c, d;
//    cin >> a >> b >> c >> d;
//    cout.precision(3);
//    cout << fixed;
//    MyComplex x(a, b), y(c, d), z(0, 0);
//    cout << "ADD : ";
//    z = x + y;
//    z.Show();
//    cout << "\nSUB : ";
//    z = x - y;
//    z.Show();
//    cout << "\nMUL : ";
//    z = x * y;
//    z.Show();
//    cout << "\nDIV : ";
//    z = x / y;
//    z.Show();
//    return 0;
//}